package 练习;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Set;
public class t1 {
    public static void main(String[] args) {
        int[] ints = {25, 84, 21, 46, 13, 27, 68, 35, 20};
        bubbleSort(ints);
        System.out.println(Arrays.toString(ints));
    }
    static void swap(int[] data, int i, int j) {
        int temp = data[i];
        data[i] = data[j];
        data[j] = temp;
    }
    // 思路，从编号0向后遍历，每次比较相邻两个数据，将小的交换到后置位。当一次遍历一个数据都没有修改的时候，表示已经排序完毕。
    static void bubbleSort(int[] data) {
        boolean changeFlag;
        for (int i = 1; i < data.length; i++) {
            changeFlag = false;
            for (int j = 1; j < data.length; j++) {
                if (data[j] > data[j - 1]) {
                    swap(data, j - 1, j);
                    changeFlag = true;
                }
            }
            if (!changeFlag) break; //本趟排序没有发生元素交换则整个序列已经有序，直接结束
        }
    }
}


